#include<bits/stdc++.h>
using namespace std;
#define int long long
inline int rd() {
    int s=0,m=0;char ch=getchar();
    while(!isdigit(ch)) {if(ch=='-')m=1;ch=getchar();}
    while( isdigit(ch)) s=(s<<3)+(s<<1)+(ch^48),ch=getchar();
    return m?-s:s;
}
int id,n,q,xa[100005],ya[100005],xb[100005],yb[100005];
namespace subtask1 {
    int a[2000005],cnt,ans;
    struct QWQ {int y,l,r,b;} p[2000005];
    bool cmp(QWQ a1,QWQ a2) {return (a1.y==a2.y?a1.b>a2.b:a1.y<a2.y);}
    struct Node {int l,r,val,sum;} t[4*2000005];
    struct ST {
        int ls(int p) {return p<<1;}
        int rs(int p) {return p<<1|1;}
        void pushup(int p) {
            if(t[p].val) t[p].sum=a[t[p].r+1]-a[t[p].l];
            else t[p].sum=t[ls(p)].sum+t[rs(p)].sum; 
        }
        void build(int p,int l,int r) {
            t[p].l=l,t[p].r=r,t[p].val=t[p].sum=0;
            if(l==r) return;
            int m=(l+r)>>1;
            build(ls(p),l,m);build(rs(p),m+1,r);
        }
        void update(int p,int l,int r,int v) {
            if(r<=a[t[p].l]||a[t[p].r+1]<=l) return;
            if(l<=a[t[p].l]&&a[t[p].r+1]<=r) {t[p].val+=v;pushup(p);return;}
            update(ls(p),l,r,v);update(rs(p),l,r,v);pushup(p);
        }
    } tt;
    int solve(int l,int r) {
        cnt=ans=0;
        for(int i=l;i<=r;i++) {
            p[++cnt]={ya[i],xa[i],xb[i],1},a[cnt]=xa[i];
            p[++cnt]={yb[i],xa[i],xb[i],-1},a[cnt]=xb[i];
        }
        sort(p+1,p+cnt+1,cmp);sort(a+1,a+cnt+1);
        int nn=unique(a+1,a+cnt+1)-a-1;
        tt.build(1,1,nn-1);
        for(int i=1;i<=cnt;i++) {
            tt.update(1,p[i].l,p[i].r,p[i].b);
            ans+=t[1].sum*(p[i+1].y-p[i].y);
        }
        return ans;
    }
    void main() {
        while(q--) {
            int l=rd(),r=rd();
            printf("%lld\n",solve(l,r));
        }
    }
}
signed main(){
    freopen("dierti.in","r",stdin);freopen("dierti.out","w",stdout);
    cin>>id>>n>>q;
    for(int i=1;i<=n;i++) xa[i]=rd(),ya[i]=rd(),xb[i]=rd(),yb[i]=rd();
    if(id<=6) {subtask1::main();return 0;}
    return 0;
}